﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// 截获SQL错误代码弹出提示信息类
/// </summary>
public class DBErrorCode
{
    /// <summary>
    /// 根据错误代码弹出错误提示
    /// </summary>
    /// <param name="code">错误代码</param>
    /// <param name="describe">描述</param>
    /// <returns>错误提示</returns>
    public static string DBError(int code, string describe)
    {
        #region 1、语法错误
        string desTemp = "未知错误";
        string eCode1 = "101、102、104、105、112、113、122、125、133、135、136、148、149、154、155、156、157、158、167、173、177、178、181、189、194、199、215、228、233、247、249、252、254、255、278、288、317、318、319、320、323、325、329、336、339、412、421、442、455、460、461、462、463、464、465、466、467、482、483、491、497、512、1003、1004、1005、1006、1008、1009、1010、1011、1012、1013、1014、1015、1016、1017、1018、1019、1020、1021、1022、1023、1024、1025、1026、1027、1028、1029、1030、1031、1032、1033、1034、1035、1036、1037、1038、1039、1040、1041、1042、1043、1044、1045、1046、1047、1048、1049、1050、1051、1052、1053、1054、1055、1056、1057、1058、1059、1060、1061、1062、1063、1064、1065、1066、1067、1068、1069、1070、1071、1072、1073、1074、1075、1076、1077、1078、1079、1080、1081、1082、1083、1084、1085、1086、1087、1088、1089、1090、    1091、1092、1093、1094、1095、1096、1097、1098、1099、1754、1755、1781、1789、1831、1921、2003、2010、2114、2201、2203、2204、2206、2207、2209、2210、2214、2216、2217、2222、2223、2224、2225、2226、2227、2228、2229、2230、2231、2232、2233、2234、2235、2236、2237、2238、2240、2241、2242、2243、2248、2249、2256、2257、2258、2264、2266、2267、2268、2269、2270、2271、2272、2273、2274、2275、2276、2277、2278、2279、2280、2281、2282、2283、2284、2285、2291、2292、2293、2294、2297、2298、2300、2301、2302、2305、2306、2307、2308、2310、2311、2313、2314、2315、2316、2317、2319、2320、2321、2322、2323、2324、2325、2326、2327、2328、2329、2331、2332、2333、2334、2335、2336、2337、2338、2339、2340、2341、2342、2343、2348、2349、2350、2351、2352、2353、2354、2355、2356、2357、2358、2359、2360、2361、2362、2363、2366、2367、2368、2369、2370、2371、2372、2373、2374、2375、2376、2377、2378、2379、2380、2384、2385、2387、2388、2389、2390、2391、2392、2393、2395、2396、2398、2526、2559、2560、2561、2740、2741、2742、2743、2747、2748、2749、2759、2762、2772、2779、2780、2785、2788、2789、 2790、3025、3031、3032、2744、2752、2753、3608、4004、4005、4006、4007";
        string[] arrCode1 = eCode1.Split('、');

        int i1 = Array.IndexOf(arrCode1, code.ToString());
        if (i1 >= 0)
        {
            desTemp = "语法错误";
            return desTemp;

        }
        #endregion

        #region 2、项目(数据表、数据库等)已存在
        string eCode2 = "106、111、143、251、1801、1828、1830、1834、1909、1913、1927、2004、2111、2703、2714、2739、2770";
        string[] arrCode2 = eCode2.Split('、');
        int i2 = Array.IndexOf(arrCode2, code.ToString());
        if (i2 >= 0)
        {
            desTemp = "项目(数据表、数据库等)已存在、仍试图对其进行构建操作发生异常";
            return desTemp;
        }
        #endregion

        #region 3、格式转换错误
        string eCode3 = "126、210、221、223、224、235、236、241、242、244、245、248、257、260、281、293、294、295、296、298、456、457、518、527、529、2211、2212、2213、2247、2309、2364、2365、2399、2583、2704、2705、2711、2720、2722、2724、2731、2733、2750、2751、2756、2761、2766、2786、2787";
        string[] arrCode3 = eCode3.Split('、');
        int i3 = Array.IndexOf(arrCode3, code.ToString());
        if (i3 >= 0)
        {
            desTemp = "格式转换错误";
            return desTemp;
        }
        #endregion

        #region 4、溢出异常（长度超出范围、存储空间不足等）
        string eCode4 = "103、108、117、123、129、131、168、180、183、187、192、193、212、217、220、232、310、476、477、479、511、517、540、541、542、564、565、577、582、583、599、945、1001、1002、1007、1101、1105、1814、1827、1835、1836、1837、1842、1904、1910、1944、1945、1946、1959、1975、1981、2002、2215、2382、2383、2386、2397、2556、2568、2570、2717、2794、3140、3606、3607";
        string[] arrCode4 = eCode4.Split('、');
        int i4 = Array.IndexOf(arrCode4, code.ToString());
        if (i4 >= 0)
        {
            desTemp = "溢出异常（长度超出范围、存储空间不足等）";
            return desTemp;
        }
        #endregion

        #region 5、数据库系统层错误
        string eCode5 = "21、116、124、130、138、140、141、144、145、146、147、150、159、164、174、175、176、182、188、191、196、197、205、211、226、231、237、262、263、268、283、285、287、300、301、302、303、304、305、306、307、308、309、311、312、314、315、316、330、331、332、333、334、338、340、341、404、405、406、408、411、413、414、415、416、417、418、423、424、434、435、438、440、445、452、453、454、458、459、469、475、478、480、481、485、486、488、489、493、494、502、503、504、505、508、510、513、523、524、525、526、539、563、566、574、578、579、584、585、595、596、597、598、602、603、605、615、617、622、627、628、650、651、666、667、670、672、674、675、675、677、678、679、680、682、701、708、823、824、825、829、832、833、844、845、846、847、929、942、943、947、1121、1122、1123、1124、1125、1126、1127、1128、1129、1130、1131、1203、1204、1205、1206、1207、1208、1209、1210、1211、1212、1213、1214、1215、1216、1217、1218、1219、1220、1221、1222、1223、1224、1225、1226、1227、1228、1229、1230、1807、1832、1809、1987、2014、2501、2502、2504、2505、2507、2509、2510、2511、2512、2514、2515、2518、2519、2524、2528、2530、2531、2532、2533、2534、2536、2537、2540、2555、2566、2567、2572、2573、2574、2579、2580、2581、2738、2814、3283、3413、3415、3416、3420、3445、3619、3620、3621、3622、3623、3624、3625、3626、3627、3628、3702、3703、3704、3705、3706、3707、3708、3709、3716、3721、3810、3811、3812、3813、3859、3860、3862、3906、3908、3909、4008、4009、4010、4011、4012、4013、4014、4015、4016、4017、4018、4019、4020、4021、4022、4027、4028、4030、4035、4037";
        string[] arrCode5 = eCode5.Split('、');
        int i5 = Array.IndexOf(arrCode5, code.ToString());
        if (i5 >= 0)
        {
            desTemp = "数据库系统层错误";
            return desTemp;
        }
        #endregion

        #region 6、数据库访问异常
        string eCode6 = "907、911、913、916、924、925、926、949、954、955、956、1701、1702、1703、1704、1705、1706、1707、1708、1709、1710、1711、1712、1713、1714、1715、1716、1717、1718、1719、1720、2525、2599、2701、2745、2809、3034、3101、3102、3452、3453、3633、3634、3635、3636、3637、3910、3912、3724、3737、3738、3740、3741、3743、4101、4102、4103、4104、4105、4107、4108、4109、4110、4111、4112、4113、4114、4115、4116、4117、4118、4119、4120、4121、4122、4123、4124、4127、4128、4129、4130、4131、4132、4133";
        string[] arrCode6 = eCode6.Split('、');
        int i6 = Array.IndexOf(arrCode6, code.ToString());
        if (i6 >= 0)
        {
            desTemp = "数据库访问异常";
            return desTemp;
        }
        #endregion

        #region  7、项目不存在但试图对其操作发生异常
        string eCode7 = "258、259、266、267、390、299、328、335、507、555、592、1202、1829、1910、2115、2218、2219、2220、2221、2260、2261、2262、2263、2394、2395、2505、2520、2521、2585、2586、2587、2588、2591、2702、2706、2715、2716、2730、2767、2773、2774、2797、2812、2801、3027、3609、3851、3852、3853、3854、3855、3856、3857、3858";
        string[] arrCode7 = eCode7.Split('、');
        int i7 = Array.IndexOf(arrCode7, code.ToString());
        if (i7 >= 0)
        {
            desTemp = "项目不存在但试图对其操作发生异常";
            return desTemp;
        }
        #endregion

        #region 8、配置异常
        string eCode8 = "321、324、516、520、521、531、533、534、570、822、902、904、908、2596、2755、2791、2792、2796、3411、3412";
        string[] arrCode8 = eCode8.Split('、');
        int i8 = Array.IndexOf(arrCode8, code.ToString());
        if (i8 >= 0)
        {
            desTemp = "配置异常";
            return desTemp;
        }
        #endregion

        #region 9、权限操作异常
        string eCode9 = "165、218、219、229、230、280、297、532、547、548、550、558、561、562、589、652、671、923、1826、2101、2102、2104、2202、2557、2571、2710、2754、2760、2778、2793、3110、3112、3265、3279、3505、3701";
        string[] arrCode9 = eCode9.Split('、');
        int i9 = Array.IndexOf(arrCode9, code.ToString());
        if (i9 >= 0)
        {
            desTemp = "权限操作异常";
            return desTemp;
        }
        #endregion

        #region 10、新建项目失败(新建表、字段、数据库等等)异常
        string eCode10 = "1802、1803、1806、1810、1812、1813、1818、1819、1914、1929、2007、2008、2013、2108、2116、2782、2798";
        string[] arrCode10 = eCode10.Split('、');
        int i10 = Array.IndexOf(arrCode10, code.ToString());
        if (i10 >= 0)
        {
            desTemp = "新建项目失败(新建表、字段、数据库等等)异常";
            return desTemp;
        }
        #endregion

        #region 11、数据备份还原错误
        string eCode11 = "921、922、927、1824、1833、2516、2517、3002、3003、3004、3005、3006、3007、3008、3009、3010、3011、3012、3013、3014、3015、3016、3017、3018、3019、3021、3022、3023、3024、3028、3033、3035、3036、3038、3039、3040、3041、3042、3043、3044、3045、3046、3047、3048、3049、3050、3051、3054、3103、3104、3105、3106、3107、3108、3109、3111、3115、3116、3117、3118、3119、3120、3121、3122、3123、3125、3126、3127、3128、3129、3130、3131、3132、3133、3134、3135、3136、3137、3138、3139、3141、3142、3143、3144、3145、3146、3147、3148、3149、3150、3151、3152、3153、3154、3155、3156、3159、3161、3163、3165、3167、3168、3169、3170、3171、3172、3173、3174、3175、3176、3178、3179、3180、3181、3182、3183、3184、3185、3186、3187、3188、3189、3190、3191、3192、3194、3195、3196、3197、3198、3199、9201、3203、3204、3205、3206、3207、3208、3209、3210、3211、3112、3213、3214、3215、3216、3217、3218、3219、3221、3222、3224、3227、3229、3230、3231、3232、3234、3235、3239、3240、3241、3242、3243、3244、3245、3246、3247、3249、3250、3251、3253、3254、3255、3256、3257、3258、3259、3262、3263、3264、3266、3268、3269、3271、3272、3273、3276、3277、3280、3301、3313、3314、3315、3316、3401、3402、3403、3404、3406、3407、3408、3409、3410、3414、3417、3418、3419、3429、3431、3441、3442、3443、3446、3447、3448、3449、3450、3454、3456、3458";
        string[] arrCode11 = eCode11.Split('、');
        int i11 = Array.IndexOf(arrCode11, code.ToString());
        if (i11 >= 0)
        {
            desTemp = "数据备份还原错误";
            return desTemp;
        }
        #endregion

        #region 12、数据库约束类异常
        string eCode12 = "142、427、432、1750、1752、1753、1756、1757、1758、1759、1760、1761、1762、1763、1764、1765、1766、1767、1768、1769、1770、1771、1772、1773、1774、1775、1776、1778、1779、1784、1785、1786、1787、1788、1907、1991、1992、2113、2735、3717、3723、3725、3726、3727、3728、3729、3730、3731、3733、3802、3804";
        string[] arrCode12 = eCode12.Split('、');
        int i12 = Array.IndexOf(arrCode12, code.ToString());
        if (i12 >= 0)
        {
            desTemp = "数据库约束类异常";
            return desTemp;
        }
        #endregion

        #region 13、索引的创建和使用异常
        string eCode13 = "961、962、965、1505、1536、1815、1816、1817、1821、1822、1823、1825、1901、1902、1908、1912、1915、1916、1917、1919、1922、1924、1925、1930、1931、1934、1935、1937、1938、1939、1940、1941、1942、1947、1949、1956、1957、1961、1962、1963、1964、1965、1966、1967、1968、1969、1970、1971、1972、1973、1974、1976、1977、1978、1979、1980、1982、1983、1985、1986、1988、1989、1990、1993、1994、1995、1996、1997、1998、1999、2011、2112、2508、2522、2523、2527、2546、2547、2550、2551、2552、2553、2554、2575、2576、2577、2594、2595、2601、2627、2707、2709、2725、2726、2727、2728、2729、2795、2798、2799、3434、3437、3734、3739、3744、3745、3746、3747、3748、3749、3750、3751、3801、3803、3805、3806、3807、3808、3809、4126、4134";
        string[] arrCode13 = eCode13.Split('、');
        int i13 = Array.IndexOf(arrCode13, code.ToString());
        if (i13 >= 0)
        {
            desTemp = "索引的创建和使用异常";
            return desTemp;
        }
        #endregion

        #region 14、一般正常性提示
        string eCode14 = "1843、2503、2538、2539、2541、2542、2543、2544、2545、2548、2549";
        string[] arrCode14 = eCode14.Split('、');
        int i14 = Array.IndexOf(arrCode14, code.ToString());
        if (i14 >= 0)
        {
            desTemp = "一般正常性提示";
            return desTemp;
        }
        #endregion

        #region 15、事务异常
        string eCode15 = "3901、3902、3903、3904、3908、3910、3912、3914、3915、3916、3917、3918、3919、3920、3921、3922、3923、3924、3925、3926、3927、3928、3929、3930、3931、3932、3933、3951、3952、3953、3954、3955、3956、3957、3958、3959、3960、3961、3963、3964、3965、3966、3967、3968、3970、3971、3972、3973、3974、3975、3976、3977、3978、3979、3980、3981、3982、3983、3984、3985、3986、3987、3988、3989、3990、3991、3992、3993、3994、3995、3996、3997";
        string[] arrCode15 = eCode15.Split('、');
        int i15 = Array.IndexOf(arrCode15, code.ToString());
        if (i15 >= 0)
        {
            desTemp = "事务异常";
            return desTemp;
        }
        #endregion

        #region 16、其他数据库错误
        string eCode16 = "114、115、119、127、128、137、139、153、151、152、160、161、162、171、172、185、186、190、195、198、202、203、204、206 、207、208、209、222、225、227、234、239、240、243、246、253、261、264、、279、284、292、322、337、401、402、407、422、441、446、448、473、474、484、487、490、496、509、514、522、552、568、573、587、590、801、802、826、827、828、831、848、849、134、169、265、277、326、327、449、451、468、492、588、107、109、110、120、121、132、163、184、201、213、214、216、256、535、556、591、606、608、830、1844、2013、2014、2205、2217、905、928、944、946、948、950、951、952、957、958、959、960、963、964、980、1102、1533、1534、1535、1401、1402、1403、1404、1405、1406、1407、1408、1409、1410、1411、1412、    1413、1414、1415、1416、1417、1418、1419、1420、1421、1422、1423、1424、1425、1426、1427、1428、1429、1430、1431、1432、1433、1434、1435、1436、1437、1438、1439、1440、1441、1442、1443、1444、1445、1446、1447、1448、1449、1450、1451、1452、1453、1454、1455、1456、1457、1458、1459、1460、1461、1462、1463、1464、1465、1466、1467、1468、1469、1470、1471、1472、1473、1474、1475、1476、1477、1478、1485、1486、1487、1498、1499、1501、1509、1510、1511、1522、1523、1528、1529、1532、1537、1538、1539、1540、1541、1542、1543、2590、2589、2592、2593、2719、2732、2775、2813、3260、3261、3267、3270、3278、3281、3455、3457、3604、3612、3613、3615、3616、4002、4038、4060、4061、4062、4063、4064、4065、4066、4067、4068、4069、4070、4071、4072、4073、4135、4136、4137、4138、4139、4140、4141、4142、4143、4144、4145、4146";
        string[] arrCode16 = eCode16.Split('、');
        int i16 = Array.IndexOf(arrCode16, code.ToString());
        if (i16 >= 0)
        {
            desTemp = "其他数据库错误";
            return desTemp;
        }
        #endregion

        return desTemp;
    }
}